import { getServerSession } from '@/server/auth';
import { initTRPC, TRPCError } from '@trpc/server';

const t = initTRPC.context<typeof createTrpcContext>().create();

export const testRouter = t.router({
  hello: t.procedure.query(async ({ ctx }) => {
    console.log(ctx.session);

    // 获取用户信息, 如果有多个 trpc 函数,这部分代码会重复写
    // 通过创建 trpc handler 的 createContext 去完成这部分功能
    // const session = await getServerSession();
    // if (!session?.user) return;

    return {
      hello: 'world',
    };
  }),
});

export async function createTrpcContext() {
  const session = await getServerSession();
  if (!session?.user) throw new TRPCError({ code: 'FORBIDDEN' });

  return { session };
}

export type TestRouter = typeof testRouter;
